#include "StartUpCommand.h"
#include "AppFacade.h"
#include "loginProxy.h"
#include "loginMediator.h"

/**
 * @brief StartUpCommand构造函数
 * 初始化父类SimpleCommand
 */
StartUpCommand::StartUpCommand()
      :SimpleCommand()
{
}

/**
 * @brief StartUpCommand析构函数
 */
StartUpCommand::~StartUpCommand(void)
{
}

/**
 * @brief 执行启动命令
 * 注册登录代理和登录中介者，完成应用程序的初始化
 * @param notification 包含应用程序视图的通知对象
 */
void StartUpCommand::execute(INotification const& notification)
{
    const void * pLoginView = notification.getBody();

    IFacade &facade = AppFacade::getInstance();

    /* ע�������Model��
    */
    facade.registerProxy(new LoginProxy());

    /**
    * ע��ViewComponents����UI������н�����
    */
    facade.registerMediator(new LoginMediator(pLoginView));
}